<?php
class SanPhamModel extends AppModel{

    public $name = 'SanPhamModel';
    public $useTable = 'san_pham';
    public $primaryKey = 'id_sp';
	
	public $belongsTo = array(
        'NhaSanXuatModel' => array(
            'className' => 'NhaSanXuatModel',
            'foreignKey' => 'id_nsx',
            'conditions' => array(
            	'NhaSanXuatModel.trang_thai_xoa' => CHUA_XOA
			)
        )
    );
	
	public $dsThamSo = array(
		'them_moi' 	=> array('ma_sp', 'ten_sp', 'gioi_tinh', 'id_nsx', 'tu_khoa', 'trang_thai', 'mo_ta_ngan', 'hinh_anh'),
		'chinh_sua'	=> array('id_sp', 'ma_sp', 'ten_sp', 'gioi_tinh', 'id_nsx', 'tu_khoa', 'trang_thai', 'mo_ta_ngan', 'hinh_anh', 'hinh_anh_cu'),
		'tra_cuu' 	=> array('ma_sp', 'ten_sp', 'gioi_tinh', 'id_nsx', 'tu_khoa', 'co_bao_het_hang', 'trang_thai'),
		'like'		=> array('ten_sp')
	);
	
	 var $validate = array(
       'ma_sp' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng nhập mã sản phẩm'
           ),
           'isUnique' => array(
               'rule' => 'isUnique',
        		'message' => 'Mã sản phẩm này đã tồn tại.'
           )
       ),
       'ten_sp' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng nhập tên sản phẩm'
           )
       ),
       'gioi_tinh' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng chọn giới tính'
           )
       ),
       'id_nsx' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng chọn nhà sản xuất'
           )
       ),
       'trang_thai' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng chọn trạng thái'
           )
       )
	);
	
	public function paginateSetting($conditions = array()){
		$conditions['SanPhamModel.trang_thai_xoa'] = 0;
		return array(
			'conditions' => $conditions,
			'recursive' => 1,
	        'limit' => LIMIT,
	        'order' => array(
	            'SanPhamModel.id_sp' => 'asc'
	        )
	    );
	}
	
	public function thayDoiTrangThaiHetHang($idSP = '',$trangThaiHetHang = ''){
		$result = array();
		if ($idSP !== '' && $trangThaiHetHang !== '') {
			$this->id = $idSP;
			if ($this->exists()) {
				$result = $this->save(array(					
					'co_bao_het_hang' => $trangThaiHetHang
				),false);
			}
		}
		return (!empty($result)) ? true : false;
	}
	
	public function xoaSP($idSP = ''){
		$result = array();
		if ($idSP !== '') {
			$this->id = $idSP;
			if ($this->exists()) {
				$result = $this->save(array(
					'trang_thai_xoa' => DA_XOA
				),false);
			}
		}
		return (!empty($result)) ? true : false;
	}

	public function layMaSPMoi(){
		$result = $this->find('first', array(
			'fields' 		=> array('ma_sp'),
			'recursive' 	=> -1,
			'order'			=> array('SanPhamModel.ma_sp' => 'desc')
		));
		$maSPMoi = 'SP'.date('y').date('m');
		if (!empty($result['SanPhamModel']['ma_sp'])) {
			$maSPCu = $result['SanPhamModel']['ma_sp'];
			$maSPCuInt = intval(substr($maSPCu,strlen($maSPCu) - 4, 4));
			$maSPMoi .= sprintf("%04d", $maSPCuInt + 1);
		} else {
			$maSPMoi .= sprintf("%04d", 1);
		}
		return $maSPMoi;
	}
} 